创建 Discord 机器人
我们很高兴地宣布,Gradio 现在可以自动将已部署的应用程序转变为 Discord 机器人!🤖
Discord 是一个流行的通信平台,允许用户实时聊天和互动。通过将 Gradio 应用程序转变为 Discord 机器人,您可以为您的 Discord 服务器带来最先进的人工智能功能,为您的社区提供全新的交互方式。
工作原理
从 gradio_client
版本 0.3.0
开始,互联网上任何 Gradio ChatInterface
应用都可以通过 Client
类的 deploy_discord
方法自动部署为 Discord 机器人。
从技术上讲,任何暴露 API 路由的 Gradio 应用程序,只要该路由接受单个字符串输入并输出单个字符串,都可以部署到 Discord。在本指南中,我们将重点关注 gr.ChatInterface
,因为这些应用程序自然地适合 Discord 的聊天功能。
环境要求
确保您安装了最新版本的 gradio_client
和 gradio
:
pip install gradio_client>=0.3.0 gradio>=3.38.0
同时,请确保您拥有 Hugging Face 账户和一个写访问令牌。
⚠️ 提示 ⚠️: 确保您通过运行 huggingface-cli login
登录到 Hugging Face Hub。这样,您就可以在本指南的后续所有命令中跳过传递您的令牌。
快速入门
步骤 1:实现聊天机器人
让我们使用 ChatInterface
构建一个简单的聊天机器人,它只是重复用户的消息。将以下代码写入 app.py
文件:
import gradio as gr
def slow_echo(message, history):
return message
demo = gr.ChatInterface(slow_echo).queue().launch()
步骤 2:部署应用
为了为我们的应用创建 Discord 机器人,它必须可以通过互联网访问。在本指南中,我们将使用 gradio deploy
命令从命令行将我们的聊天机器人部署到 Hugging Face Spaces。运行以下命令:
gradio deploy --title echo-chatbot --app-file app.py
这个命令会询问您一些问题,例如所需硬件、依赖项等,但对于本指南而言,默认值就足够了。请记下创建的空间的 URL。例如:https://huggingface.co/spaces/yourusername/echo-chatbot
步骤 3:创建 Discord 机器人
感谢 gradio deploy-discord
,将我们的空间转变为 Discord 机器人也只需一条命令。运行以下命令:
gradio deploy-discord --src yourusername/echo-chatbot
❗️ 高级选项 ❗️: 如果您已经有了 Discord 机器人令牌,可以将其传递给 deploy-discord
命令。如果您还没有令牌,不用担心!
gradio deploy-discord --src yourusername/echo-chatbot --discord-bot-token <token>
请记下打印到控制台的 URL。例如:https://huggingface.co/spaces/yourusername/echo-chatbot-gradio-discord-bot
步骤 4:获取 Discord 机器人令牌
如果您在步骤 3 中没有 Discord 机器人令牌,请前往控制台中打印的 URL 并按照其中的说明操作。一旦获得令牌,再次运行该命令,但这次传入令牌:
gradio deploy-discord --src yourusername/echo-chatbot --discord-bot-token <token>
步骤 5:将机器人添加到您的服务器
访问您的 Discord 机器人空间。您应该看到 "通过点击此链接将此机器人添加到您的服务器:",后面跟着一个 URL。前往该 URL 并将机器人添加到您的服务器!
步骤 6:使用您的机器人!
默认情况下,机器人可以通过以 /chat
开头的消息调用,例如:/chat <您的提示>
。
⚠️ 提示 ⚠️: 如果任何已部署的空间进入休眠状态,机器人将停止工作。默认情况下,空间在 48 小时不活动后进入休眠状态。您可以升级空间的硬件以防止它进入休眠状态。
使用 gradio_client.Client
类
您还可以通过 Python 从已部署的 Gradio 应用程序创建 Discord 机器人:
import gradio_client as grc
grc.Client("yourusername/echo-chatbot").deploy_discord()
使用最先进的大语言模型
Hugging Face 上有一个名为 gradio-discord-bots 的组织,其中包含多个模板空间,解释如何将由 Gradio 支持的最先进的大语言模型部署为 Discord 机器人。
最简单的入门方法是部署 Meta 的 Llama 2 大语言模型(拥有 700 亿参数)。只需前往相应空间并按照说明操作即可。
部署可以通过一行代码完成!
import gradio_client as grc
grc.Client("ysharma/Explore_llamav2_with_TGI").deploy_discord(to_id="llama2-70b-discord-bot")
其他大语言模型
除了 Meta 的 700 亿 Llama 2 模型外,还为以下大语言模型和部署选项准备了模板空间:
- gpt-3.5-turbo,由 OpenAI 提供支持。需要 OpenAI 密钥。
- falcon-7b-instruct,由 Hugging Face Inference Endpoints 提供支持。
- Llama-2-13b-chat-hf,由 Hugging Face Inference Endpoints 提供支持。
- Llama-2-13b-chat-hf,由 Hugging Face transformers 提供支持。
要将任何这些模型部署到 Discord,只需按照该模型的链接空间中的说明操作即可。
部署非聊天类 Gradio 应用到 Discord
如前所述,如果您想将 Gradio 应用部署到 Discord,您不一定需要 gr.ChatInterface
。所需要的只是一个 API 路由,它接受单个字符串输入并输出单个字符串。
以下代码将部署一个将英语翻译成德语的空间作为 Discord 机器人:
import gradio_client as grc
client = grc.Client("freddyaboulton/english-to-german")
client.deploy_discord(api_names=['german'])
结论
就是这样!我们对这个功能感到非常兴奋。在 Twitter 上标记 @Gradio,向我们展示您的 Discord 社区如何与您的 Discord 机器人互动。